package licode.unisop.single.user.infrastructure.repository.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Map;

/**
 * UserPO
 * 
 * @author licode
 * @date 2016-08-27 15:28:34 
 */
@Data
@ToString
@TableName (value = "au_user", autoResultMap = true)
public class UserPO implements Serializable {

    private static final long serialVersionUID =  957682969240349578L;

    /**
     * 账号ID（唯一）
     */
    @TableId(type = IdType.INPUT)
    private String userId;

    /**
     * 用户所属分组
     */
    private String groupId;

    /**
     * 领域ID
     */
    private String realmId;

    /**
     * 用户名称
     */
    private String name;

    /**
     * 用户别名
     */
    private String nickName;

    /**
     * 用户类型（0：普通用户；1：系统用户）
     */
    private Integer userType;

    /**
     * 用户头像
     */
    private String avatar;

    /**
     * 用户签名
     */
    private String signature;

    /**
     * 用户性别（2：女；1：男）
     */
    private Integer gender;

    /**
     * 联系手机号码
     */
    private String mobile;

    /**
     * 用户邮箱
     */
    private String email;

    /**
     * 用户密码
     */
    private String password;

    /**
     * 密码加盐
     */
    private String salt;

    /**
     * 状态（0：未激活；1：已激活；2：停用；）
     */
    private Integer state;

    /**
     * 编辑模式（0：不允许编辑；1：允许编辑）
     */
    private Integer editMode;

    /**
     * 用户属性信息
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> props;

    /**
     * 最后一次登录时间
     */
    private LocalDateTime lastLoginTime;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

}
